' ccConsoleMetrics.bas
#COMPILE EXE
#DIM ALL
' turn off the console
#CONSOLE OFF
'
#INCLUDE "win32api.inc"
'
FUNCTION PBMAIN () AS LONG
  LOCAL hWin AS DWORD
  LOCAL strInkeyVar AS STRING
  LOCAL lngWidthVar AS LONG
  LOCAL lngHeightVar AS LONG
  LOCAL lngFont AS LONG
  LOCAL lngWidthVar_client AS LONG
  LOCAL lngHeightVar_client AS LONG
  LOCAL lngX, lngY AS LONG
  '
  FONT NEW "Courier New",18 TO lngFont
  '
  GRAPHIC WINDOW "Graphic Window", 300,300,680,580 TO hWin
  '
  ' set window so it can't be closed by the user
  GRAPHIC WINDOW STABILIZE hWin
  ' all subsequent graphics command go to this window
  GRAPHIC ATTACH hWin,0 , REDRAW
  '
  ' get the window size in pixels
  GRAPHIC GET SIZE TO lngWidthVar, lngHeightVar
  ' get the client area in pixels
  GRAPHIC GET CLIENT TO lngWidthVar_client, lngHeightVar_client
  '
  GRAPHIC SET FONT lngFont
  '
  GRAPHIC PRINT "Monitor Count = " & FORMAT$(funMonitorCount())
  GRAPHIC PRINT
  GRAPHIC PRINT "Window Size"
  GRAPHIC PRINT " X = " & FORMAT$(lngWidthVar)
  GRAPHIC PRINT " Y = " & FORMAT$(lngHeightVar)
  GRAPHIC PRINT
  GRAPHIC PRINT "Client size"
  GRAPHIC PRINT " X = " & FORMAT$(lngWidthVar_client)
  GRAPHIC PRINT " Y = " & FORMAT$(lngHeightVar_client)
  '
  GRAPHIC PRINT
  funGetPrimaryMaximizedSize_PB(lngX, lngY)
  GRAPHIC PRINT "Client area " & " = " & _
                FORMAT$(lngX) & " x " & FORMAT$(lngY)
                '
  ' resize the graphics window to maximize it
  GRAPHIC SET SIZE lngX, lngY
  GRAPHIC SET LOC 0,0
                '
  GRAPHIC REDRAW
  '
  DO
    GRAPHIC INKEY$ TO strInkeyVar
    IF strInkeyVar = $ESC THEN
    ' wait for Escape key to be pressed
      EXIT LOOP
    ELSE
      SLEEP 100
    END IF
    '
  LOOP
  '
  GRAPHIC WINDOW END hWin
  FONT END lngFont
  '
END FUNCTION
'
FUNCTION funGetPrimaryMaximizedSize_PB(lngX AS LONG, _
                                       lngY AS LONG) AS LONG
' get the size when maximized
  lngX = METRICS(MAXIMIZED.X) - METRICS(SCROLL.VERT)
  lngY = METRICS(MAXIMIZED.Y) - METRICS(SCROLL.HORZ)
  '
END FUNCTION
'
FUNCTION funMonitorCount() AS LONG
' determine number of monitors connected to computer
  FUNCTION = GetSystemMetrics(%SM_CMONITORS)
END FUNCTION
'